草庐IT

scrapy -- CrawlSpider类

全部标签

python - Scrapy: 'str' 对象没有属性 'iter'

我向我的scrapy蜘蛛添加了restrict_xpaths规则,现在它立即失败并显示:2015-03-1615:46:53+0000[tsr]ERROR:SpidererrorprocessingTraceback(mostrecentcalllast):File"/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py",line800,inrunUntilCurrentcall.func(*call.args,**call.kw)File"

python - Scrapy:如何从 spider_idle 事件回调中手动插入请求?

我创建了一个蜘蛛,并将一个方法链接到spider_idle事件。如何手动添加请求?我不能只从解析中返回该项目——在这种情况下解析没有运行,因为所有已知的URL都已被解析。我有一个生成新请求的方法,我想从spider_idle回调中运行它以添加创建的请求。classFooSpider(BaseSpider):name='foo'def__init__(self):dispatcher.connect(self.dont_close_me,signals.spider_idle)defdont_close_me(self,spider):ifspider!=self:return#Thee

python - 如何使用 scrapy 捕获错误,以便在出现用户超时错误时执行某些操作?

ERROR:Errordownloading:Usertimeoutcausedconnectionfailure.我在使用我的抓取工具时不时遇到这个问题。有什么方法可以捕获这个问题并在它发生时运行一个函数吗?我无法在任何地方找到如何在线完成此操作。 最佳答案 你可以做的是定义一个errback在您的Request实例中:errback(callable)–afunctionthatwillbecalledifanyexceptionwasraisedwhileprocessingtherequest.Thisincludespag

python - Scrapy 从文件中读取 URL 列表以进行抓取?

我刚刚安装了scrapy并遵循了他们简单的dmoztutorial哪个有效。我只是查找了python的基本文件处理,并试图让爬虫从文件中读取URL列表,但出现了一些错误。这可能是错误的,但我试了一下。有人可以给我看一个将URL列表读入scrapy的例子吗?提前致谢。fromscrapy.spiderimportBaseSpiderclassDmozSpider(BaseSpider):name="dmoz"allowed_domains=["dmoz.org"]f=open("urls.txt")start_urls=fdefparse(self,response):filename=

python - 如何使用 scrapy 合约?

Scrapy合约问题我开始研究scrapy框架。也实现了一些蜘蛛提取,但我无法为蜘蛛编写单元测试用例,因为契约(Contract)scrapy提供的包文档没有正确的程序来编写测试用例。请帮我解决这个问题。 最佳答案 是的,SpidersContracts远非清晰和详细。我不是编写蜘蛛契约(Contract)的专家(实际上在web-scrapingtutorial上工作时只写过一次)。但是每当我需要为Scrapy蜘蛛编写测试时,我更喜欢遵循​​newcoder.io的方法——从本地html文件创建一个假的响应。这是否仍然是一个单元测试

python - 未调用 Scrapy 管道 spider_opened 和 spider_closed

我在使用scrapy管道时遇到了一些问题。我的信息正在从网站上抓取,并且process_item方法被正确调用。然而,spider_opened和spider_closed方法没有被调用。classMyPipeline(object):def__init__(self):log.msg("InitializingPipeline")self.conn=Noneself.cur=Nonedefspider_opened(self,spider):log.msg("Pipeline.spider_openedcalled",level=log.DEBUG)defspider_closed(

python - scrapy 中的项目 vs 项目加载器

我是scrapy的新手,我知道项目用于填充抓取的数据,但我无法理解项目和项目加载器之间的区别。我试图阅读一些示例代码,他们使用项目加载器来存储而不是项目,我不明白为什么。Scrapy文档对我来说不够清晰。任何人都可以就何时使用项目加载器以及它们为项目提供哪些额外设施给出一个简单的解释(更好的例子)? 最佳答案 我真的很喜欢文档中的官方解释:ItemLoadersprovideaconvenientmechanismforpopulatingscrapedItems.EventhoughItemscanbepopulatedusing

python - 如何在 Amazon S3 上存储 scrapy 图像?

我已经使用Scrapy大约1周了,想将图像存储到amazonS3,他们提到他们支持将图像上传到amazonS3,但没有记录。那么有人知道如何将AmazonS3与Scrapy一起使用吗?这是他们关于mediapipeline的Scrapy文档. 最佳答案 您需要3个设置:AWS_ACCESS_KEY_ID="xxxxxx"AWS_SECRET_ACCESS_KEY="xxxxxx"IMAGES_STORE="s3://bucketname/base-key-dir-if-any/"就是这样,即。图像将使用在http://readthe

python - Scrapy CrawlSpider 不抓取第一个着陆页

我是Scrapy的新手,我正在做一个抓取练习,我正在使用CrawlSpider。虽然Scrapy框架工作得很好并且它遵循相关链接,但我似乎无法让CrawlSpider抓取第一个链接(主页/登陆页面)。相反,它会直接抓取规则确定的链接,但不会抓取链接所在的着陆页。我不知道如何解决这个问题,因为不建议覆盖CrawlSpider的解析方法。修改follow=True/False也不会产生任何好的结果。这是代码片段:classDownloadSpider(CrawlSpider):name='downloader'allowed_domains=['bnt-chemicals.de']star

python - 反复安装 scrapy 和 lxml 失败

我以前使用Anaconda来处理python,但我现在开始使用虚拟环境。我设置了virtualenv和virtualenvwrapper,并一直在尝试为我想尝试的项目添加模块,特别是scrapy和lxml。每次我pip安装时,我都会遇到错误。对于抓取:File"/home/philip/Envs/venv/local/lib/python2.7/site-packages/setuptools/command/easy_install.py",line1003,inrun_setupraiseDistutilsError("Setupscriptexitedwith%s"%(v.arg